home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 2 / Atari Mega Archive CD - Volume 2.iso / 8bit / cislib_a / midas2.act < prev    next >
Text File  |  1995-04-22  |  8KB  |  1 lines

  1. ;      CHECKSUM DATA¢;[EC 61 1B 36 B8 1C C8 1E¢; 4C 34 CD 5E 3C 82 2A 56¢; DF 77 62 ED 61 C7 5A 14¢; 20 C1 6C 4F E9 2C D1 EB¢; 6C 95 E1 84 AF 0B 1A 88¢; 3B EE ]¢¢¢PROC STICK(BYTE PN)¢ VARSET(4)¢ IF ST(0)<>15 THEN¢  ATRACT=0¢  IF SAX(4)=0 THEN¢   STIK=ST(0) & 1¢   IF STIK = 0 THEN¢    DIR(4)=0¢   FI¢   STIK=ST(0) & 2¢   IF STIK=0 THEN¢    DIR(4)=1¢   FI¢  FI¢  IF SAY(4)=0 THEN¢   STIK=ST(0) & 8¢   IF STIK=0 THEN¢    DIR(4)=3¢   FI¢   STIK=ST(0) & 4¢   IF STIK=0 THEN¢    DIR(4)=2¢   FI¢  FI¢ FI¢ CHCH(4)¢ IF DDM=1 AND PN=4 THEN¢  LOOK()¢ FI¢RETURN¢¢¢PROC CHCOL()¢ BYTE COP¢ COL=0¢ FOR COP=0 TO 3 DO¢  IF MPL(COP)>0 THEN COL=MPL(COP) FI¢ OD¢ HITCLR=0¢RETURN¢¢PROC GR4()¢ GRAPHICS(0) DLIST=PEEKC(560)¢ POKE(752,1) PRINT(" ")¢ DLIST(3)=66¢ FOR LP0=6 TO 28 DO¢  DLIST(LP0)=4¢ OD¢ FOR LP0=0 TO 40 DO¢  Y40(LP0)=LP0*40¢ OD¢ FOR LP0=0 TO 12 DO¢  T8M(LP0)=LP0*8¢ OD¢ FOR LP0=0 TO 4 DO¢  T3M(LP0)=LP0*3¢ OD¢RETURN¢¢¢PROC CHSETUP()¢ P106=PEEK(106)-12 CHSET=P106*256¢ RAMTOP=P106 GR4() CHBAS=P106¢ MOVEBLOCK(CHSET,57344,1024)¢ FOR CLP0=0 TO 288-1 DO¢  POKE((CHSET+520)+CLP0,CHST(CLP0))¢ OD¢ SCR=PEEKC(88)¢RETURN¢¢¢PROC PM_SET()¢ SDMCTL=62¢ GRPRIOR=1+16¢ GRACTL=3¢ FOR LP0=0 TO 3 DO¢  SIZEP(LP0)=0¢ OD¢ PMBASE=P106+4 PMTEMP=(P106+4)*256¢ M0=PMTEMP+768 PL0=M0+256¢ PL1=PL0+256 PL2=PL1+256 PL3=PL2+256¢ PAD(0)=PL0 PAD(1)=PL1¢ PAD(2)=PL2 PAD(3)=PL3¢ PCOLR(0)=0*16+10¢ PCOLR(1)=12*16+5¢ PCOLR(2)=8*16+4¢ PCOLR(3)=4*16+4¢ ZERO(PMTEMP,2048)¢RETURN¢¢¢PROC PAUSE()¢ POSITION(33,0) PRINT("PAUSED")¢ FOR LP0=0TO 7 DO¢  AUDFC(LP0)=0¢ OD¢ CH=255¢ DO¢ UNTIL CH<255 OD¢ CH=255¢ POSITION(33,0) PRINT("      ")¢RETURN¢¢PROC MIRROR()¢ BYTE SC¢ FOR LP0=0 TO 19 DO¢  FOR LP1=0 TO 23 DO¢   SC=SCR(LP0+Y40(LP1))¢   IF SC=78 OR SC=80 THEN SC==+1¢   ELSEIF¢   SC=79 OR SC=81 THEN SC==-1¢   FI¢   IF SC=67 THEN SC==+1¢   ELSEIF SC=68 THEN SC==-1¢   FI¢   IF SC=83 THEN SC==+1¢   ELSEIF SC=84 THEN SC==-1¢   FI¢   SCR((39-LP0)+Y40(LP1))=SC¢  OD¢ OD¢RETURN¢¢PROC BOARDS()¢ IC=70 LP0=0¢ P0X=PRL(LP0)¢ WHILE P0X<40 DO¢  P0Y=PRL(LP0+1)¢  P1X=PRL(LP0+2) P1Y=PRL(LP0+3)¢  PL(P0X,P0Y) DR(P1X,P1Y) LP0==+4¢  P0X=PRL(LP0)¢ OD¢ IC=73 LP0=0 P0X=PUD(LP0)¢ WHILE P0X<40 DO¢  P0Y=PUD(LP0+1)¢  P1X=PUD(LP0+2) P1Y=PUD(LP0+3)¢  PL(P0X,P0Y) DR(P1X,P1Y) LP0==+4¢  P0X=PUD(LP0)¢ OD¢  IC=69 PL(12,9)¢  IC=98¢  FOR LP0=0 TO 2 DO¢   PL(LP0,1) DR(LP0,10)¢   PL(LP0,14) DR(LP0,23)¢  OD¢  PL(0,12) DR(2,12) PL(19,8) DR(19,10)¢  PL(10,8) PL(10,10) PL(12,14) IC=85¢  FOR LP0=0 TO 4 STEP 2 DO¢   P0X=DOOR(LP0) P0Y=DOOR(LP0+1)¢   PL(P0X,P0Y)¢  OD¢  IC=84¢  FOR LP0=4 TO 15 STEP 2 DO¢   P0X=DOOR(LP0) P0Y=DOOR(LP0+1)¢   IC=83 PL(P0X,P0Y)¢   IC=84 PL(P0X+1,P0Y)¢  OD¢ MIRROR()¢ FOR LP0=0 TO 10 DO¢  R=RAND(15)¢  PCOLR(6)=R*16+8¢  FOR CLP0=0 TO 3500 DO OD¢ OD¢ FOR LP0=0 TO 11 STEP 2 DO¢  P0X=ENER(LP0) P0Y=ENER(LP0+1)¢  IC=86+INE PL(P0X,P0Y)¢  IC=87+INE PL(P0X+1,P0Y)¢ OD¢ FOR LP0=0 TO 15 STEP 2 DO¢  P0X=KEYS(LP0) P0Y=KEYS(LP0+1)¢  IC=96 PL(P0X,P0Y)¢  IC=97 PL(P0X+1,P0Y)¢ OD¢ FOR CLP0=40 TO 959 DO¢  TS0=SCR(CLP0) TS1=SCR(CLP0+1)¢  IF TS0=0 AND TS1=0 THEN¢   SCR(CLP0)=193 SCR(CLP0+1)=194¢   GC==+1¢  FI¢ OD¢RETURN¢¢¢PROC TITLE()¢ XTRA=3 OSCOR=0 SSC=5 COL=0 INE=0¢ FOR LP0=0 TO 7 DO¢  HPOSP(LP0)=0¢ OD¢ DELAY=700¢ RAMTOP=MEM¢ GRAPHICS(1)¢ SETCOLOR(4,0,0) SETCOLOR(0,8,3)¢ SETCOLOR(1,2,8)¢ DLIST=PEEKC(560) DLIST(10)=7¢ DLIST(11)=7¢ POKE(752,1)¢ SCR=PEEKC(88)¢ PRSCOR()¢ POSITION(5,5) PRINTD (6,"לחגIJצ")¢ POSITION(9,6) PRINTD(6,"לIJםד")¢ POSITION(2,14)¢ PRINTDE(6," pressáהחפדáor")¢ PRINTD(6,"   צקIJפקátoáסכIJך") PUTE()¢ PRINT("          by Ken Miller")¢ SNDRST()¢ DO¢  FOR LP0=0 TO 1 DO¢   TS0=COL¢   DO¢    WSYNC=0 PFCOLR2=TS0 TS0==+1¢   UNTIL VCOUNT=128 OD¢  OD¢  COL==-1¢ UNTIL CONSOL=6 OR STRIG0=0 OD¢ COL=0 TS0=0¢ ZERO(SCOR,8) PRSCOR()¢ CHSETUP()¢ PM_SET()¢ HITCLR=0¢RETURN¢¢PROC START()¢ BYTE R¢ DO¢  SNDRST()¢  GC=0 GG=0¢  FOR LP0=0 TO 3 DO¢   STX(LP0)=124 STY(LP0)=96¢  OD¢  STX(4)=124 STY(4)=160 BRPO(1)=0¢  ZERO(SCR,959) BOARDS()¢  FOR LP0=0 TO XTRA-1 DO¢   SCR(21+LP0)=82¢  OD¢  ZERO(M0,1279)¢  SETCOLOR(0,0,14) SETCOLOR(1,8,10)¢  SETCOLOR(2,3,5) SETCOLOR(3,2,8)¢  SETCOLOR(4,0,0)¢  DIR(4)=2 SP=2¢  FOR LP0=0 TO 4 DO¢   SPIN(LP0)=0 EDF(LP0)=0 PDF(LP0)=0¢   SPT(LP0)=0 SPN(LP0)=0¢  OD¢  DO¢   IF CH<255 THEN PAUSE() FI¢   IF SCOR(3)>OSCOR THEN¢    OSCOR=SCOR(3) XTRA==+1¢    SCR(21+(XTRA-1))=82¢   FI¢   IF SCOR(3)=0 THEN OSCOR=0 FI¢   IF ST0>0 THEN¢    AUDFC(0)=ST0 AUDFC(1)=32+1¢    ST0==-1¢   ELSE AUDFC(1)=0¢   FI¢   IF ST2>0 THEN¢    AUDFC(2)=10+ST2¢    AUDFC(3)=128+64+2¢    ST2==-1¢   ELSE AUDFC(3)=0¢   FI¢   IF ST3>0 THEN¢    AUDFC(4)=12+ST3 AUDFC(5)=64+32+2¢    ST3==-1¢   ELSE AUDFC(5)=0¢   FI¢   IF GC=GG THEN DELAY==-25¢    IF DELAY<10 OR DELAY>700¢    THEN DELAY=10¢    FI¢    INE==+2¢    IF INE>8 THEN INE=0 FI¢    THO==+1¢    IF THO>5 THEN THO=1 FI¢    START()¢   FI¢   IF GG=75 THEN¢    IC=99 PL(19,10)¢    IC=100 PL(20,10)¢    MBT=350¢   FI¢   IF MBT>0 THEN MBT==-1 FI¢   IF MBT=1 THEN¢    IC=98 PL(19,10)¢    PL(20,10)¢   FI¢   CHCOL()¢   IF PT=0 THEN ESC=2 FI¢   IF COL>0 THEN¢    IF COL=8 THEN COL=3¢    ELSE¢     COL== RSH 1¢    FI¢    IF DIR(4)>1 THEN PDF(4)=1¢    ELSE PDF(4)=0¢    FI¢    IF DIR(COL)>1 THEN PDF(COL)=1¢    ELSE¢     PDF(COL)=0¢    FI¢    IF POWER>0 OR PT>0 THEN¢     IF EDF(COL)=0 THEN EDF(COL)=80¢      IF EDF(COL)=80 THEN¢       FOR ELP=1 TO ESC DO¢        HUND(1)¢       OD¢       ESC==+1¢      FI¢      IF ESC>16 THEN ESC=8 FI¢     FI¢    ELSEIF PDF(4)=PDF(COL)¢    AND EDF(COL)=0 THEN¢     ZERO(M0,1279) PMM=0¢     FOR LP0=0 TO 3 DO¢      STX(LP0)=124 STY(LP0)=96¢     OD¢     SNDRST()¢     FOR CLP0=0 TO 500 DO¢      SPT(4)==+1¢      IF SPT(4)>SPN(4) RSH 3 THEN¢       SPT(4)=0 SPN(4)==+6¢       IF SPN(4)>250 THEN SPN(4)=0 FI¢       SPIN(4)==+1¢       IF SPIN(4)>3 THEN SPIN(4)=0 FI¢      FI¢      PMST(M0,P0,SPIN(4))¢      PM_GO(STX(4),STY(4),PMM)¢      AUDFC(6)=SPIN(4) LSH 4¢      AUDFC(7)=2¢      FOR LP0=0 TO 200 DO OD¢     OD¢     AUDFC(6)=0 AUDFC(7)=0 SPT(4)=0¢     SPN(4)=0 ZERO(M0,255) DIR(4)=2¢     STX(4)=124 STY(4)=160 COL=0¢     PMST(M0,P0,DIR(4))¢     PM_GO(STX(4),STY(4),PMM)¢     FOR CLP0=0 TO 40000 DO OD¢     SCR(21+(XTRA-1))=0 XTRA==-1¢     IF XTRA=0 THEN TITLE() START()¢     FI¢    FI¢   FI¢   COL=0¢   IF POWER>0 THEN POWER==-1¢    FOR LP0=0 TO 3 DO¢     PCOLR(LP0)=2*16+6¢    OD¢    ELSEIF PT>0 THEN PT==-1 PD==-1¢     FOR LP0=0 TO 3 DO¢      PCOLR(LP0)=2*16+6¢     OD¢     IF PD>200 THEN PD=5¢      PCOLR(0)=0*16+10¢      PCOLR(1)=12*16+5¢      PCOLR(2)=8*16+4 PCOLR(3)=4*16+4¢     FI¢    FI¢    FOR LP0=0 TO 3 DO¢     IF EDF(LP0)=0 THEN¢      EMBR(LP0)¢      PMST(PAD(LP0),EP,DIR(LP0))¢      PM_GO(STX(LP0),STY(LP0),PMM)¢     ELSE¢      EDF(LP0)==-1 SPT(LP0)==+1¢      IF EDF(LP0)>2 THEN¢       IF SPT(LP0)>SPN(LP0) THEN¢        SPT(LP0)=0 SPN(LP0)==+1¢        IF SPN(LP0)>15 THEN¢         SPN(LP0)=0¢        FI¢        SPIN(LP0)==+1¢        IF SPIN(LP0)>3 THEN¢         SPIN(LP0)=0¢        FI¢        SES=SPNA(SPIN(LP0))¢         PMST(PAD(LP0),EP,SES)¢         PM_GO(STX(LP0),STY(LP0),PMM)¢         AUDFC(4)=SPIN(LP0) AUDFC(5)=4¢        ELSEIF EDF(LP0)>2 AND¢        EDF(LP0)<5 THEN¢         AUDFC(6)=0 AUDFC(7)=0¢         SPT(LP0)=0 SPN(LP0)=0¢         ZERO(PAD(LP0),255) DIR(LP0)=1¢         STX(LP0)=124 STY(LP0)=96¢         EMBR(LP0)¢         PMST(PAD(LP0),EP,DIR(LP0))¢         PM_GO(STX(LP0),STY(LP0),PMM)¢         EDF(LP0)=0¢        FI¢       FI¢      FI¢     OD¢     STICK(4)¢     PMST(M0,P0,DIR(4))¢     PM_GO(STX(4),STY(4),PMM)¢     PMM==+1¢     IF PMM>2 THEN PMM=0 FI¢     FOR CLP0=0 TO DELAY DO OD¢    UNTIL CONSOL=6 OD¢    TITLE()¢   OD¢RETURN¢¢PROC MAIN()¢ ZERO(SCOR,8)¢ MEM=RAMTOP¢ TITLE() START()¢RETURN¢¢rrrrrrrrrrrrrr